Add Nix flake for Warp#9394
Conversation
Adds a first-party Nix flake that builds the OSS Warp Linux binary from source, installs desktop assets and bundled resources, and exposes a development shell. Co-Authored-By: Warp <agent@warp.dev>
Use the existing bundled-resource preparation script so the Nix package includes the generated THIRD_PARTY_LICENSES.txt in both bundled resources and share/licenses.
|
I'm starting a first review of this pull request. I'm re-reviewing this pull request in response to a review request. I requested changes on this pull request and posted feedback. Comment I requested changes on this pull request and posted feedback. Comment I approved this pull request. No matching stakeholder was found for the changed files, so no human reviewers were requested. Comment You can view the conversation on Warp. I approved this pull request. No matching stakeholder was found for the changed files, so no human reviewers were requested. Comment Powered by Oz |
|
/oz-review |
There was a problem hiding this comment.
Overview
This PR adds a Linux Nix flake and dev shell for building the OSS Warp binary, packaging resources, desktop metadata, icons, licenses, and runtime wrappers.
Concerns
- The package builds
warp-ossbut generates bundled resources and the settings schema as thedevchannel. In this repository,devmaps to dogfood-gated skills and enables release, preview, dogfood, and debug feature flags for schema generation, so the Nix output can ship internal/experimental assets and settings that should not be part of the OSS package.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | ||
| "${resourcesDir}" \ | ||
| dev \ | ||
| release | ||
|
|
||
| "$out/bin/generate_settings_schema" \ | ||
| --channel dev \ |
There was a problem hiding this comment.
dev copies dogfood/preview-gated skills and generate_settings_schema enables DEBUG/DOGFOOD/PREVIEW flags, so the Nix package can expose internal/experimental assets and settings not intended for OSS users. Use an OSS/stable-equivalent channel for both resource copying and schema generation.
There was a problem hiding this comment.
Overview
This PR adds a Nix flake that builds and packages the OSS Warp Linux binary with bundled resources, desktop metadata, icons, license files, runtime wrappers, and a matching development shell.
Concerns
- The package builds the OSS binary but prepares resources and the settings schema as the dev channel, which can expose dogfood-gated bundled resources and dev-only settings metadata in a public Nix package.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | ||
| "${resourcesDir}" \ | ||
| dev \ | ||
| release | ||
|
|
||
| "$out/bin/generate_settings_schema" \ | ||
| --channel dev \ | ||
| "${resourcesDir}/settings_schema.json" |
There was a problem hiding this comment.
warp-oss binary but prepares resources and the settings schema as dev; that includes dogfood-gated skills via copy_conditional_skills and emits a dev/debug settings schema. Use a public channel here, or add explicit oss support before shipping this package.
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | |
| "${resourcesDir}" \ | |
| dev \ | |
| release | |
| "$out/bin/generate_settings_schema" \ | |
| --channel dev \ | |
| "${resourcesDir}/settings_schema.json" | |
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | |
| "${resourcesDir}" \ | |
| stable \ | |
| release | |
| "$out/bin/generate_settings_schema" \ | |
| --channel stable \ | |
| "${resourcesDir}/settings_schema.json" |
|
I'm checking this implementation PR for association with a likely matching ready issue. Powered by Oz |
|
/oz-review |
There was a problem hiding this comment.
Overview
This PR adds a first-party Nix flake for building and developing the Linux Warp OSS package, including pinned Nix inputs, vendored Cargo dependencies, resource/schema/license installation, wrapper setup, and a matching development shell.
Concerns
- No blocking correctness or security concerns found in the inlined diff. The external Nix inputs and auxiliary source fetches are pinned by lockfile/hash, and the packaging steps are scoped to the new flake files.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
/oz-review |
There was a problem hiding this comment.
Overview
This PR adds a first-party Nix flake that builds and packages the OSS Warp Linux binary for x86_64-linux and aarch64-linux, including bundled resources, settings schema generation, license attribution, desktop metadata, icons, runtime wrapping, and a matching development shell.
Concerns
- No blocking correctness or security concerns were found in the reviewed diff.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
Context for maintainers: this PR supersedes #9373. #9373 was the original submission for this Nix flake work, but it was automatically closed by the issue-readiness workflow after being explicitly associated with the related issue before that issue had the
Oz has approved this PR after those fixes. |
|
@VitalyAnkh Thanks for addressing all the rounds of feedback from Oz here! I've gone ahead and marked #9296 as ready-to-implement so that we can link it with this issue. @acarl005 Can I tap you to review this? |
|
Question is does this actually build warp-terminal from source or does this build the schema? Because building warp from source requires more work including compiling the metalib seperately as xcrun doesn't actually allow compiling metal files to air. I have a feeling this is AI generated slop. |
|
@Eveeifyeve What's the metalib? With this PR, I run: nix build .#warp-terminal --print-out-paths --print-build-logs
result/bin/warp-terminal --helpThe compiled warp-termimal runs normally. You can run the command and verify the result.
I utilize AI but this is not AI generated slop. |
|
@Eveeifyeve I rebuilt this locally. This PR builds the real Linux You can verify by yourself. Evidence from
Repro: nix build .#warp-terminal --print-out-paths --print-build-logs
file result/opt/warpdotdev/warp-terminal/.warp-oss-wrapped
tmp_home="$(mktemp -d)"
mkdir -p "$tmp_home/.config" "$tmp_home/.local/state"
HOME="$tmp_home" \
XDG_CONFIG_HOME="$tmp_home/.config" \
XDG_STATE_HOME="$tmp_home/.local/state" \
timeout 20s result/bin/warp-terminal || true
tail -n 80 "$tmp_home/.local/state/warp-oss/warp-oss.log"About I clarified the PR description as well: this PR currently supports Linux only, and macOS support is still separate WIP. Please verify the build before calling a contribution "AI generated slop". I do use AI tooling, but this is a reproducible working build. An unverified accusation like that is human generated slop, not useful review feedback. |
Follow-up context
This PR supersedes #9373. The earlier PR was automatically closed by the issue-readiness workflow after it was explicitly associated with the related issue before that issue had the
ready-to-implementlabel. This PR carries the same Nix flake work forward and includes the follow-up review fixes from that thread: installing generated third-party license attribution and aligning bundled resources/settings schema with the stable public channel.Description
Adds a first-party Nix flake for Linux users.
Fixes #9296
Platform scope
This flake currently supports Linux only (
x86_64-linuxandaarch64-linux). macOS support still requires separate packaging work and is not included in this PR.What changed:
flake.nix/flake.lockwithpackages.defaultandpackages.warp-terminalforx86_64-linuxandaarch64-linux.release_bundle,gui, andnld_improvementsfeatures.devShellfor Nix-based Rust development.Testing
nix flake show --all-systems --no-write-lock-filenix flake check --all-systems --no-build --print-build-logsnix build .#warp-terminal --print-out-paths --print-build-logs/nix/store/x0m983q27jkq70ydynz1i9dgvpkwcrk9-warp-terminal-0.1.0+b742d4e.result/bin/warp-terminal --helptimeout 20s result/bin/warp-terminalstayed running until timeout (status=124).JSON Schema for Warp settings (stable channel, 185 settings).triage-vulnerabilitiesdogfood-gated skill in the package output.THIRD_PARTY_LICENSES.txtis installed under bothopt/warpdotdev/warp-terminal/resourcesandshare/licenses/warp-terminal, with matching contents.Server API dependencies
No server API dependencies.
Agent Mode
Changelog Entries for Stable
CHANGELOG-IMPROVEMENT: Added first-party Nix flake support for Linux users to build Warp from source.
Co-Authored-By: Warp agent@warp.dev